package com.example.deepschool.repositories;

import com.example.deepschool.Model.CourseResource;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

/**
 * 课程资源 数据访问接口
 */
@Repository
@Mapper
public interface CourseResourceRepository {
	
	/**
	 * 插入一个新的课程资源。
	 *
	 * @param courseResource 要插入的课程资源对象
	 * @return 插入成功的记录数
	 */
	Integer insert ( CourseResource courseResource );
	
	/**
	 * 根据ID删除一条课程资源记录。
	 *
	 * @param id 要删除的课程资源的ID
	 * @return 删除成功的记录数
	 */
	Integer delete ( Long id );
	
	/**
	 * 更新一条课程资源记录。
	 *
	 * @param courseResource 要更新的课程资源对象
	 * @return 更新成功的记录数
	 */
	Integer update ( CourseResource courseResource );
	
	/**
	 * 根据ID查询一条课程资源记录。
	 *
	 * @param id 要查询的课程资源的ID
	 * @return 查询到的课程资源对象
	 */
	CourseResource select ( Long id );
	
	/**
	 * 根据课程ID查询该课程的所有资源。
	 *
	 * @param courseId 要查询资源的课程ID
	 * @return 查询到的课程资源对象数组
	 */
	CourseResource[] selectByCourseId ( Long courseId );
	
	/**
	 * 根据课程资源地址查询有多少条记录。
	 *
	 * @param address 要查询的课程资源地址
	 * @return 查询到的记录数
	 */
	Integer selectCountByAddress (String address);
	
}
